<?php

  /**
   * TagsController
   *
   * Класс контроллера для отображения тегов
   */

  final class TagsController extends XMLController
  {
    /**
     * Action отобразить список тегов
     *
     * @param int[]  $ids    идентификаторы неотображаемых тегов
     * @param string $filter текст, который присутствует в теге
     * @return void
     * @access public
     */
    public function actionIndex(array $ids = array(), $filter = "")
    {
      $where = $filter ? "`name` like '%$filter%'" : "";
      /** @var $app WebApplication */
      $app = $this->app;
      /** @var $user CWebUser */
      $user = $app->user;
      if ($user->isGuest || strcasecmp($user->role, User::MODERATOR))
        $ids += array(-1, 0); // Диаспора, RES PUBLICA
      if (!empty($ids))
      {
        if ($where)
          $where .= " and ";
        $where .= "not `id` in('".join("','", array_unique($ids))."')";
      }
      if ($where)
        $where = "where $where";

      WebApplication::response($app->db->createCommand("select `id`,`name` from `tag_names` $where order by `name`")->queryAll());
    }
  }

?>
